<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS janking CSS transition</title>

<style>
  html {
    font-family: sans-serif;
  }

  .box {
    background: green;
    position: relative;
    width: 100px;
    height: 100px;
    -webkit-transition: -webkit-transform 10s linear;
    transition: transform 10s linear;

    /* Adding these lines fixes the issue
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    */
  }
</style>
</head>
<body>
<div class="box"></div>
<button class="run">Run</button>
<script>
  function jankify() {
    var start = Date.now();
    while (Date.now() - start < 250);
    setTimeout(jankify, 750);
  }

  var box = document.querySelector('.box');

  window.addEventListener('load', function() {
    box.style.transform = box.style.WebkitTransform = 'translate3d(500px, 0, 0)'
    jankify();
  });
</script>
</body>
</html>